package com.kk.demo.java8.stream.base01;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

/**
 * 开始使用stream并带有reduce
 * @author liujun
 * @date 2016年8月28日
 * @verion 0.0.1
 */
public class StreamUseReduce {

    public StreamUseReduce() {
    }

    public static void main(String[] args) {
        StreamUseReduce stream = new StreamUseReduce();

        stream.mapProcess(stream.getStream());
    }

    /**
     * 得到Stream对象
     * @return
     */
    public Stream<String> getStream() {
        // 声明一个集合
        List<String> arrayInt = Arrays.asList("1,1000", "1,200", "1,300", "2,100", "2,200");
        // 通过集合得到一个stream对象
        Stream<String> intStream = arrayInt.stream();

        return intStream;
    }

    public void mapProcess(Stream<String> input) {
        int value = input.map(this::getMapPrcess).reduce(0, (a, b) -> a + b);
        System.out.println(value);
    }

    /**
     * 得到进行map处理的方法
     * @param key 输入的行记录
     * @return 结果的map信息
     */
    public int getMapPrcess(String key) {
        String[] arrayks = key.split(",");
        int a1 = Integer.parseInt(arrayks[0]);
        int a2 = Integer.parseInt(arrayks[1]);
        return a1 + a2;
    }

}
